package com.zyx.flinkdemo.stream.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * @author zyx
 * @since 2021/7/16 22:16
 * desc: 处理Json的工具类
 */
public class JsonUtils {
    /**
     * 将jsonArray型的字符串转化为指定类型的列表
     *
     * @param jsonArrayStr jsonArray型的字符串
     * @param tClass       传入的类型
     * @return             T类型的列表
     */
    public static <T> List<T> jsonArrayToList(String jsonArrayStr, Class<T> tClass) {
        if (jsonArrayStr == null) {
            return null;
        }
        List<T> resList = new ArrayList<>();
        JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);
        if (jsonArray.size() > 0) {
            for (Object obj : jsonArray) {
                T t = JSONObject.parseObject(JSON.toJSONString(obj), tClass);
                resList.add(t);
            }
            return resList;
        } else {
            return null;
        }
    }
}
